package tsb.dom;

/**
 * @author David
 *
 * En diseño de software, el patrón de diseño Iterador, define una interfaz que
 * declara los métodos necesarios para acceder secuencialmente a un grupo de
 * objetos de una colección. Algunos de los métodos que podemos definir en la
 * interfaz Iterador son:
 *
 *  Primero()
 *  Siguiente();
 *  ElementoActual()
 *  HayMas()
 *
 * Este patrón de diseño permite recorrer una estructura de datos sin que sea
 * necesario conocer la estructura interna de la misma.
 *
 */

import java.util.Vector;

public class Iterador {

    private Vector<Componente> vector;
    private int indiceActual;

    public Iterador(Vector<Componente> vector) {
        this.indiceActual = 0;
        this.vector = vector;
    }

    public void Primero(){
        indiceActual = 0;
    }

    public void Siguiente(){
        if( (indiceActual) < this.vector.size()){
            indiceActual++;
        }
    }

    public Componente ElementoActual(){
        return (vector.elementAt(indiceActual));
    }

    public boolean HayMas(){
        boolean hayMas = true;
        if((indiceActual) == this.vector.size()){
            hayMas = false;
        }        
        return ( hayMas );
    }
}
